
#define MAXPANT		2
#define SCREEN 		(80*25*2)
#define BUFVID 		(80*25*2*MAXPANT)	//buffer de video para una sola pantalla
#define POSVIDEO 	0xb8000
#define MAXLINE 	25			//maximo de lineas que entran por pantalla
#define MAXCOL 		(80*2) 			//maximo de columnas que entran por pantalla
#define KEY_ENTER 	'\n'
#define BKSP		'\b'
#define SHIFT_TAB	0x09

/*
**		Mueve la pantalla una posicion para arriba, simula un scroll,
		modifica el buffer de video, y deja el 
**		puntero para imprimir en la ultima linea
*/
void movScreen(void);

/*
		- imprime un enter en pantalla
*/
void isEnter(void);

/*
**		Recibe el caracter que se quiere imprimir en pantalla
**		-putCharVideo escribe directamente sobre la posicion 
		de memoria donde se encuentra mapeado el video
**		esta funcion es llama solo en la primitiva write. 
		Setea todas las letras con el mismo attribute
**		verifica que el puntero no se pase de la zona de pantalla
*/
void putCharVideo(char car);

/*
**		Actualiza el buffer de video en pantalla
*/
void refresh(void);

/*
**		Decrementa el offset y el cursor de video, 
		verifica que no se valla de la pantalla
*/
void isBksp(void);

/*
**		inicializa el buffer de video , el offset, y el cursor
*/
void inicializarVideo(void);

/*
**		Decrementa el offset y el cursor de video, 
		verifica que no se valla de la pantalla
*/
void resetVideo(void);

/*
**		Utiliza el dispositivo motorola CRTC 6845, y
		mueve el cursor en pantalla, segun por donde  
**		este escribiendo el usuario
*/
void setCursorPosi(int actual);
/*
**		Limpia toda la pantalla
*/
void k_clear_screen();;
